Zapformer preview - #2082
Conversation
….8 and direct=0.1 to direct=0.15
…range of progress, use 0.95,0.05
This reverts commit 4da937c0f9eef0328f0fca13da836e48a51a5e58.
…_decay_proportion=0.85 to cubic_decay_proportion=0.8, beta1=0.998 to beta1=0.995.
…ce length a little
…nto the main training loop
…vertible2217conv # Conflicts: # egs/librispeech/ASR/zapformer/model.py
…s now a total across all copies, and --num-copies is command-line arg; remove soft links to ../zipformer/; much code cleanup.
…nistic_invertible3243conv
|
Hi @danpovey, first, thanks a lot to you and your team for sharing this new architecture. I have a question here, have you tried CR-CTC(+pruned transducer) with this? Does this new architecture constitute similar improvements as Zipformer with CR-CTC over no CR-CTC version? |
No; for reasons that are unclear to me, the CR-CTC loss does not seem to help in this setup and with this model. |
Thanks for reporting this, I'll check with Kangwei. Let us know what you had to do to make the onnx work! |
Fix streaming decode issue
Can you share your training command, my model trained with num-real-epochs=30, and decoded with chunk-size=32 left-context-frames=128, the WER on test-clean is 2.38, much lower than yours (is 3.79). |
See for the training command: |
|
Hi @danpovey , thank you for sharing |
batcher-per-epoch is not an important configuration value. It is supposed to be the number of batches in the 1st epoch, but it will make almost no difference if you don't set it, for typical learning rate schedules, because it automatically figures out the real number of batches per epoch by the second epoch. |
| ) # otherwise use all default settings. | ||
|
|
||
| if torch.cuda.is_available(): | ||
| with torch.cuda.device(rank): |
There was a problem hiding this comment.
The local rank should be passed here, but the global rank was used instead, which will cause errors during multi-machine DDP training.
There was a problem hiding this comment.
OK thanks. I think I'll remove that code about setting the rank, it was set while I was debugging something, while I had a misconception about where the random number generator "lives".
There was a problem hiding this comment.
I will remove this code, I later realized it was not necessary.
When training on a large dataset, such as 100Khours, typically we don’t need to train for as many as 40 epochs. Should I need to adjust the |
|
Yes, you would probably want a much smaller --max-copies, e.g. 2 or 1... it's there to prevent overfitting from a large number of epochs, if the num epochs is small it shouldn't be necessary. |
We are working on the writeup but this is in case anyone wants to try the latest version. Also note the --use-giga=True option in train.py and the --giga=True option in decode scripts.
Summary by CodeRabbit
New Features
Documentation
Chores